/**
 * @author Roger Wu
 */
(function($){
    $.fn.dialogDrag = function(options){
        if (typeof options == 'string') {
                if (options == 'destroy') 
                    return this.each(function() {
                            var dialog = this;        
                            $("div.dialogHeader", dialog).unbind("mousedown");
                    });
        }
        return this.each(function(){
            var dialog = $(this);
            $("div.dialogHeader", dialog).mousedown(function(e){
                $.pdialog.switchDialog(dialog);
                dialog.data("task",true);
                setTimeout(function(){
                    if(dialog.data("task"))$.dialogDrag.start(dialog,e);
                },100);
                return false;
            }).mouseup(function(e){
                dialog.data("task",false);
                return false;
            });
        });
    };
    $.dialogDrag = {
        currId:null,
        _init:function(dialog) {
            this.currId = new Date().getTime();
            var shadow = $("#dialogProxy");
            if (!shadow.size()) {
                shadow = $(DWZ.frag["dialogProxy"]);
                $("body").append(shadow);
            }
            $("h1", shadow).html($(".dialogHeader h1", dialog).html());
        },
        start:function(dialog,event){
                this._init(dialog);
                var sh = $("#dialogProxy");
                sh.css({
                    left: dialog.css("left"),
                    top: dialog.css("top"),
                    height: dialog.css("height"),
                    width: dialog.css("width"),
                    zIndex:parseInt(dialog.css("zIndex")) + 1
                }).show();
                $("div.dialogContent",sh).css("height",$("div.dialogContent",dialog).css("height"));
                sh.data("dialog",dialog);
                dialog.css({left:"-10000px",top:"-10000px"});
                $(".shadow").hide();                
                $(sh).jDrag({
                    selector:".dialogHeader",
                    stop: this.stop,
                    event:event
                });
                return false;
        },
        stop:function(){
            var sh = $(arguments[0]);
            var dialog = sh.data("dialog");
            $(dialog).css({left:$(sh).css("left"),top:$(sh).css("top")});
            $.pdialog.attachShadow(dialog);
            $(sh).hide();
        }
    }
})(jQuery);